package br.com.churrascariabrasadeouro.persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import br.com.churrascariabrasadeouro.Principal;
import br.com.churrascariabrasadeouro.negocio.Comanda;
import br.com.churrascariabrasadeouro.negocio.Estoque;
import br.com.churrascariabrasadeouro.negocio.Produto;

public class EstoqueDAO {
	/*static {
		try {
			Class.forName("org.hsqldb.jdbcDriver");
		} catch (Exception e) {
			System.out.println("ERROR: failed to load HSQLDB JDBC driver.");
	
		*/
	//Incluir itens no estoque
	
	public Integer incluirEstoque(Estoque eproduto){
		try {
			Connection conexao = Principal.banco.obterConexao();
			PreparedStatement ps = conexao.prepareStatement("insert into estoque " +
					"(ID,DATA,DESCRICAO,QUANTIDADE, VALOR) values (?,?,?,?,?)");
			
			ps.setDate(1, new java.sql.Date( new Date().getTime()));
			ps.setString(2, eproduto.getDescricao());
			ps.setDouble(3, eproduto.getQuantidade());
			ps.setDouble(4, eproduto.getValor());
			ps.setInt(5, eproduto.getId());
			ps.execute();
			conexao.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
	public Integer incluirEstoque(Integer id){
		return id;
	}
	
	//Listar estoque
	public List<Estoque> listarEstoque(){
		List<Estoque> estoques = new ArrayList<Estoque>();
		try {
			Connection conexao = Principal.banco.obterConexao();
			Statement stmt = conexao.createStatement();
			ResultSet rs = stmt.executeQuery("Select ID,DATA,DESCRICAO,QUANTIDADE, VALOR FROM ESTOQUE");
			while(rs.next()){
				Estoque eproduto = new Estoque();
				
				eproduto.setId(rs.getInt(1));
				eproduto.setData(new Date(rs.getDate(2).getTime()));
				eproduto.setDescricao(rs.getString(2));
				eproduto.setQuantidade(rs.getInt(3));
				eproduto.setValor(rs.getDouble(3));
				estoques.add (eproduto);
			}
			conexao.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return estoques;
	}
		
	public void alterarEstoque(Estoque eproduto) {
		try {
			Connection conexao = Principal.banco.obterConexao();
			PreparedStatement ps = conexao.prepareStatement("UPDATE ESTOQUE SET DESCRICAO=?, VALOR=?, DATAHORA=?, QUANTIDADE=?" +
					"WHERE ID=?");
			ps.setString(1, eproduto.getDescricao());
			ps.setDouble(2, eproduto.getValor());
			ps.setDouble(4, eproduto.getQuantidade());
			ps.setDate(5, new java.sql.Date(new Date().getTime()));
			ps.setInt(6, eproduto.getId());
			ps.execute();
			conexao.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
		
			}
		

